#include <iostream>

using namespace std;

int main()
{
    constexpr size_t rowCnt = 3, colCnt = 4;
    int ia[rowCnt][colCnt]; // 12 个未初始化的元素
    // 对于每一行
    for (size_t i = 0; i != rowCnt; ++i) {
        // 对于行内的每一列
        for (size_t j = 0; j != colCnt; ++j) {
            // 将元素的位置索引作为它的值
            ia[i][j] = i * colCnt + j;
        }
    }

    // 前一个程序可以简化为如下形式：
    size_t cnt = 0;
    for (auto &row : ia)            // 外层循环的控制变量类型一定要声明成引用类型
        for (auto &col : row) {     // 否则，得到的 row 的类型就是 int* 而不是 int[]
            col = cnt;
            ++cnt;
        }
}